iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
Modern Web

使用 Clojure 當個 Full-stack 開發者系列 第 3

[Day 3] 跨越開發界限

  • 分享至 

  • xImage
  •  

在正式開始寫程式前,先分享一個我覺得超好用的功能

這個也是在其他語言沒看過或沒做那麼好的功能

那就是RDD~~

REPL-Driven Development

什麼是repl呢? wiki的解釋是 read eval print loop

https://clojure.org/guides/repl/introduction

就是你邊讀邊執行看結果然後重複這個迴圈,最終程式就寫好了~

我個人認為要簡介的話就是Interpreter+TDD,以下先用範例描述並先簡述一下這個我愛不釋手的流程

今天收到了一個新的功能要求

流程大多應該都是寫程式、準備各種需要的前置、跑一下驗證剛剛寫的然後一路到程式完成

我自己試過幾種

  1. TDD
    測試的程式、目標的函數、setup/teardown
    但遇到範圍較大就不太夠用

  2. Interpreter
    在python/node/...可以直接進入他的直譯器import module來測試我要寫的邏輯(我是用vscode的 runner)
    但他的scope/module跑起來沒有那麼方便

  3. GDB
    在已有的專案下來協助debug開發
    東西都在記憶體了,前置什麼都不用變
    但他要寫比較多行的程式滿麻煩的,還有新邏輯也不能這樣寫
    以前c#可以下中斷點然後開發、執行、修改,然後再把中斷點拉回前面重新執行,但不是每個專案都可以這樣子使用

以上幾點都讓我覺得沒有辦法一口氣完成功能,或是就專案單跑一個專案rebuild也要好久(只改幾行,這邊體感的久是3秒)

但REPL-Driven Development徹底解決這個問題!!

你可以在你的編輯器寫code,然後送到環境裡執行

而且這個環境是用有你全部的資料、你專案所需要的東西全部都在記憶體裡面,所以你可以直接呼叫

不管你是需要超複雜的設定的module
在啟動前要做什麼事情
...

你都只需要做一次,完全不用為了其他開發作額外設定(如果要用成mock之類的不算)

想像你要裝潢房間

不需要蓋地基建大樓隔房間、不需要建假空間、不需要在工廠做好再搬進去

你只需要看現在的長什麼樣,然後蓋地基、裝潢全部一起來

覺得神奇嗎?歡迎來到REPL-Driven Development的世界

P.S. 這個跟不衝突,不是說使用此開發就不用測試喔


上一篇
[Day 2] 成為米其林大廚
下一篇
[Day 4] 超效率之Snippets 必學技巧
系列文
使用 Clojure 當個 Full-stack 開發者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言